home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / utility / argsos3.doc next >
Text File  |  1995-04-22  |  5KB  |  172 lines

  1. Here it is, ARGS-OS 3. It is a modified ROMDisk OS by Ralf David / Klaus
  2. Peters, but Klaus Peters (distributer) agreed that Roland Buehler uses it.
  3.  
  4. ARGS-OS 3 was mainly made by Roland Buehler but I did the final work, so here
  5. is my doc:
  6.  
  7. If you want to use it, you'll have to UNARC the file ARGSOS3.ARC and burn it
  8. on an 128KBit-Eprom (27128). Then either replace the old OS with it or use a
  9. switch to select between them (I hope you know how).
  10.  
  11.  
  12. ROMDisk-OS features:
  13. ====================
  14.  
  15. - highspeed SIO-routine for upgraded drives (about 76000 baud)
  16.   (if it fails use function key + Shift-Control-U)
  17.   
  18. - mini-monitor: Start with function-key + Shift-Control-M
  19.   (use with +, *, Shift-+, Shift-*, A, ESC)
  20.  
  21. - supports the ROMDisk (of course)
  22.  
  23. Additional ARGS-OS features:
  24. ============================
  25.  
  26. - supports the ARGS-Centronics-cartridge
  27.   (if this cart is not fitted, the normal P:-handler is used)
  28.   
  29. - includes the ZRAM-DMA routine to use expansion-Ram
  30.  
  31. Disadvantages:
  32. ==============
  33.  
  34. - The monitor-function conflicts with the Shift-Control-M command of ACTION!
  35.  
  36. - No self-test (have you ever needed it?)
  37.  
  38. - no international charset
  39.  
  40. - any expansion using $D506 may confuse the "P:"-handler
  41.  
  42. - a small bug for all users without ROMDisk: the ROMDisk-OS was mainly
  43.   build to support the ROMDisk - it doesn't check wether a ROMDisk is
  44.   plugged in or not. If you want to use "D2:" you'll have to put the
  45.   non-existing ROMDisk to another number (function key + Control +
  46.   Number). In the next weeks I won't have time to fix this, sorry.
  47.  
  48.  
  49. ===============================
  50. Important Pokes in the ARGS-OS:
  51. ===============================
  52.  
  53. $CFC8-$CFCE (53192-53198): ASCII-String "ARGS-OS"
  54. $CFCF (53199): version (now: 3)
  55.  
  56. $CFD0-CFE7 (53200-53223): jumptable 
  57. $CFE8-CFFF (53224-53247): jumptable for BASIC
  58.  
  59. used            |normal                         |BASIC
  60. entries:        |Hex            |Decimal        |Hex            |Dezimal
  61. ----------------+---------------+---------------+---------------+--------
  62. ZRam-DMA        |$CFD0          |53200          |$CFE8          |53224
  63. ----------------+---------------+---------------+---------------+--------
  64. don't care if you don't have the ARGS-Centronics-cart:
  65. EOL <-> CR      |               |               |               |
  66. translation:    |               |               |               |
  67. Off             |$CFD3          |53203          |$CFEB          |53227
  68. On              |$CFD6          |53206          |$CFEE          |53230
  69. ----------------+---------------+---------------+---------------+--------
  70.  
  71. How to use the normal ZRam-DMA:
  72. -------------------------------
  73. The ZRam-DMA uses several bytes ($D6 - $E2) in the Zeropage. If you use the
  74. routine from a language other than BASIC, you'll have to set the following
  75. variables:
  76.  
  77. mode ($D6): 0 -> read from expansion memory
  78.             else -> write into expansion memory
  79.  
  80. ZRam-address ($D7/$D8): address in the expansion memory
  81.  
  82. normal adress ($DB/$DC): address in the normal RAM
  83.  
  84. length ($DD/$DE): length of the block to transfer
  85.  
  86. block ($DF): mask for the chosen block (see below)
  87.  
  88. Then just jump to $CFD0.
  89.  
  90.  
  91. How to use it with BASIC:
  92. -------------------------
  93. No Peeks, no Pokes, just one USR-routine:
  94.  
  95. A=USR( 53224, <mode: 4 or 8>, <address in expansion Ram>,
  96.               <address in normal Ram, e.g. ADR(A$)>,
  97.               <length of block>, <chosen block (see below)> )
  98.  
  99. (in BASIC this call has to be in ONE line, of course)
  100.  
  101. mode: '4' means "read from expansion Ram"
  102.       '8' means "write into expansion Ram"
  103.  
  104. Example:
  105. The command
  106.      A=USR( 53224, 4, 10000, ADR(A$), 3333, 224 )
  107. reads 3333 Bytes from the expansion Ram (address 10000, block 224) into
  108. the string A$.
  109.  
  110. How to choose a block:
  111. ---------------------
  112. With 'block' I mean a sequence of 4 banks, 
  113. e.g. $E3, $E7, $EB, $EF
  114. or   $23, $27, $2B, $2F
  115.  
  116. The routine takes the chosen block, adds a value ($03, $07, $0B or $0F)
  117. and switches to the corresponding bank like:
  118. POKE PORTB, (block OR <3/7/$B/$F>) AND PEEK(PORTB)
  119.  
  120. You don't have to worry about this if you have a XE-compatible expansion. 
  121. Reasonable values for blocks are:
  122.  
  123. 64K expansion RAM:
  124. $E0 (224)
  125.  
  126. 256K expansion RAM:
  127. $E0 (224)
  128. $A0 (160)
  129. $60 (96)
  130. $20 (32)
  131.  
  132. I am not quite sure how to use it with an 1MB Axlon-expansion - any
  133. suggestions are welcome!
  134.  
  135. I think it does not work with a 4MB expansion, but if anyone needs this by
  136. all means then write to me!
  137.  
  138. Users who want to use it with a Peters 1MB-expansion have to set the segment
  139. number (0-3) in $D600 (54784), if you want to use the full 1MB.
  140.  
  141. ========
  142. Caution:
  143. ========
  144.  
  145. - Be sure that the highest expansion-address:
  146.   <address in expansion memory> + <length> - 1
  147.   is below $10000 (65536)!
  148.  
  149. - Your screenmemory shouldn't be between $4000-$7FFF (16384 - 32767), or
  150.   you'll get rubbish on your screen while using the ZRam-DMA.
  151.   
  152. - I tested it with BASIC but until now not (really) with assembler!
  153.  
  154.  
  155. Bug reports (including errors and insufficent English in this doc),
  156. suggestions for improvement and additional features (there isn't much space
  157. left!) please send to:
  158.  
  159. jscharrl@ba-stuttgart.de
  160.  
  161. Jochen Scharrlach
  162. Vordernbergstr. 27
  163. 70191 Stuttgart
  164. Germany
  165.  
  166. or (if you are also interested in ARGS-Hardware)
  167.  
  168. Roland Buehler 
  169. Engelgasse 21
  170. 72348 Rosenfeld
  171. Germany
  172.